package com.repair.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.repair.entity.Announcement;
import java.util.List;

public interface AnnouncementService extends IService<Announcement> {
    /**
     * 获取最新的公告
     * @return 最新的公告信息
     */
    Announcement getLatestAnnouncement();

    /**
     * 创建新公告
     * @param announcement 公告信息
     */
    void createAnnouncement(Announcement announcement);

    /**
     * 更新公告
     * @param announcement 公告信息
     */
    void updateAnnouncement(Announcement announcement);

    /**
     * 删除公告
     * @param id 公告ID
     */
    void deleteAnnouncement(Long id);

    // 创建公告
    Announcement create(Announcement announcement);
    
    // 更新公告
    void update(Announcement announcement);
    
    // 发布公告
    void publish(Long id);
    
    // 下线公告
    void offline(Long id);
    
    // 获取公告详情
    Announcement getById(Long id);
    
    // 获取最新公告列表
    List<Announcement> getLatest(int limit);
    
    // 根据用户类型获取公告列表
    List<Announcement> getByUserType(Integer userType);
    
    // 获取所有公告
    List<Announcement> getAll();
    
    // 阅读公告
    void read(Long announcementId, Long userId);
    
    // 检查公告是否已读
    boolean isRead(Long announcementId, Long userId);
}